<?php
/**
 * 爬取数据
 * @Author Kernel
 * @Date 20211026
 */

// 设置 utf-8 编码
header("Content-type: text/html; charset=utf-8");

// 引入助手函数
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Helper' . DIRECTORY_SEPARATOR . 'functions.php';

// 操作提示
define('SUCCESS_MSG', '*^____^* wao 美味的鸡汤熬制完成啦，快来尝尝吧！');
define('NEWEST_MSG', 'o_o .... 别熬了，真的一滴都没有了！明天再试试吧！');

// 文件名
$fileName = 'dujitang.txt';

// 查询时间
$startTime = '2018-3-21';               // 起始时间
$currentTime = date('Y-m-d');    // 当前时间

// api 接口地址
$apiUrl = 'http://www.dutangapp.cn/u/toxic?date=';

// 先清除文件缓存（因为 file_exists 、 filemtime 等函数的结果会被缓存 ）
clearstatcache();

// 判断文件是否存在
if ( file_exists($fileName) ) {
    // 获取上次修改文件日期
    $lastWriteFileTime = strtotime( date('Y-m-d', filemtime($fileName) ) );

    // 如果上次修改文件日期小于当前日期
    if ( $lastWriteFileTime < strtotime($currentTime) ) {
        $text = handle_data($apiUrl, $currentTime);
        write_file($text);
        echo SUCCESS_MSG;
    } else {
        echo NEWEST_MSG;
    }
} else {
    // 计算开始抓取的日期与当前日期相隔的天数
    $days = time_interval($startTime, $currentTime);

    // 创建文件保存抓取的句子
    $file = fopen($fileName, "a+");
    // 循环抓取句子
    for ($i =1; $i < $days; $i++) {
        $text = handle_data($apiUrl, $currentTime);
        // 将格式化处理后的内容写入文件
        fwrite($file, $text);
        // 每循环一次，当前日期减去循环变量
        $currentTime = date('Y-m-d', strtotime("-" . strval($i) . "day"));
    }
    // 关闭文件
    fclose($file);
    echo SUCCESS_MSG;
}









